package top.dreamlove.core.ThreadDown;

import top.dreamlove.constant.Constant;

import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.DoubleAdder;

/**
 * 下载信息显示
 */
public class DownloadInfoThreadShowInfo implements Runnable{
    public double totalSize;//下载文件的总大小(单位以MB展示)
    public static volatile DoubleAdder downloadedSize = new DoubleAdder();//已下载的文件大小(单位以MB展示)
    public  double  prevDownloadedSize;//上一次下载的文件大小(单位以MB展示)

    public double speed;//下载速度(以KB表示)

    public Integer remainTime;//剩余时间(以秒展示)

    public double percent;//下载百分比
    public DownloadInfoThreadShowInfo(Integer totalSize) {
        this.totalSize = totalSize / Constant.MB;
    }

    @Override
    public void run() {
        percent = downloadedSize.doubleValue()/ totalSize;//百分比
        speed = (downloadedSize.doubleValue() - prevDownloadedSize) * 1024 ;//下载速度(kb)
        prevDownloadedSize = downloadedSize.doubleValue();//上一次下载的文件大小
        remainTime = Double.valueOf((totalSize - downloadedSize.doubleValue()) / (speed / 1024)).intValue();//剩余时间
        String format = String.format("已下载%.2fMB 速度%.2fkb 剩余时间%d秒 下载进度%.2f ", downloadedSize.doubleValue(), speed,remainTime,percent * 100);
        System.out.print("\r");
        System.out.print(format);
    }
}